
#pragma warning(disable : 4819)
#pragma once
#include "Scene.h"
#include <map>
#include <functional>
#include <memory>
#include "SDL.h"
struct Mix_Music;
enum SceneSelect
{
    default_scene = 0,
    Team_Scene,
    Create_Scene,
    max_scene
};
enum TankeStatus
{
    default_status,
    run_status,
};

class BeginScene : public Scene
{
public:
    BeginScene();
    ~BeginScene();
    void Init() override;
    void HandleEvent(SDL_Event *event) override;
    UpDateResult Update(float deltaTime) override;
    void Render() override;

private:
    TankeStatus status_;
    Mix_Music *music;
    SDL_Texture *currentTexture_;
    SDL_Texture *currentTextureTanke_;
    std::shared_ptr<SDL_Texture> StartSceneBackGround_;
    SceneSelect sceneSelect_;
    std::map<SDL_Keycode, std::function<void()>> SDL_eventMap_;
    std::map<SceneSelect, std::function<void()>> SDL_SceneMap_;
    // 退出程序
    void exit_();
    // 选项下移
    void Next_select();
    // 选项上移
    void last_select();
    // 设置选项
    void sure_select();
    // 初始化默认场景
    void Render_default_scene();
    // 初始化游戏场景
    void Render_Tream_scene();
    void Render_create_scene();
};
